Bienvenidos al examen final de GBI6 - Bioinformática.
Los contenidos de esta evaluación corresponden a los temas de R revisados en el curso:
Tipos de datos
Instalación y uso de librerías.
Estructuras de control
Funciones
Manipulación de datos
Estadística básica
Visualización de datos
Esta permitido consultar todo material disponible: diapositivas, google…Sin embargo NO esta permitido consultar a sus colegas.
Ustedes estan utilizando el R Markdown. Las instruciones son:
Creen una carpeta en su computador con el nombre “GBI6_ExamenFinal” donde guarden este cuaderno .Rmd.
Cree un subdirectorio de nombre “data” donde guarde la data que van a utilizar.
Cree un subdirectorio de nombre “results” donde guarde la tablas y figuras generadas del análisis.
Definan a esa carpeta como su directorio de trabajo.
Arriba, solamente donde dice “author”, deben llenar sus nombres.
Los codigos deben ser escritos dentro de las cajas que inician y terminan con ``` o dentro de las cajas indicadas abajo de las preguntas.
Al final del examen deben utilizar el comando “Knit” para generar un archivo .html
Es recomendable crear una copia de este script guía.
Genere controles de la versión para cada una de las preguntas con la leyenda “Nombre Apellido, resuelve el ejercicio XX”.
Copie y peque la dirección de su repositorio de GitHub en la actividad “ExamenFinal”.
Asegúrese de responder explícitamente cada una de las preguntas.
Para comprender la data de esta evaluación se requiere conocer el significado de algunos acrónimos de los tipos de cancer como indica el Broad Institute Cancer Names. Asimismo revise la información de ayuda para expresionsTCGA. La data contiene las columnas:
bcr_patient_barcode: es el identificador del paciente.
dataset: es el identificador del tipo de cancer del paciente.
resto de columnas: nivees de expresión de los diferentes mRNA de los genes que están como nombre de columna (para este análisis se han seleccionado solamente 7 de ellos).
## [1] "D:/Bioinformática/CSB-master/GBI6_ExamenFinal"
## Rows: 1463 Columns: 9
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (2): bcr_patient_barcode, dataset
## dbl (7): GATA3, PTEN, XBP1, ESR1, MUC1, FN1, GAPDH
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
long_df para transformar la data df de la forma wide a long.df_long utilizandola función long_df.La tabla resultante tendrá tres columnas: dataset, gen, expresion_level.
## # A tibble: 8 x 3
## dataset gen expresion_level
## <chr> <chr> <dbl>
## 1 BRCA GATA3 2.87
## 2 BRCA GATA3 2.17
## 3 BRCA GATA3 1.32
## 4 BRCA GATA3 1.84
## 5 BRCA GATA3 -6.03
## 6 BRCA GATA3 1.80
## 7 BRCA GATA3 -4.88
## 8 BRCA GATA3 -3.14
df_long, genere un Descriptive table (librería sjPlot) y guárdelo en el subdirectorio “result” con el nombre mRNA_expr_summary.doc (previamente debe seleccionar las celdas adecuadas con funciones de la librería dplyr en conjunto con el operador %>%).##
## Attaching package: 'sjmisc'
## The following object is masked from 'package:tidyr':
##
## replace_na
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
agrup <- df_long %>% group_by(dataset,gen)
descr(x=agrup, out="browser", file="results/mRNA_expr_summary.doc")| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | 2.30 | 2.62 | 0.11 | 3.06 | 2.63 | 10.97 (-4.86-6.11) | 3.17 | -1.03 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | -0.06 | 1.29 | 0.05 | 0.10 | 0.02 | 7.03 (-3.8-3.23) | 1.79 | -0.53 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | -1.13 | 0.67 | 0.03 | -1.20 | -1.16 | 4.58 (-3.12-1.46) | 0.82 | 0.55 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | 1.10 | 1.80 | 0.07 | 1.68 | 1.37 | 9.96 (-6.03-3.93) | 2.02 | -1.31 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | 1.85 | 1.50 | 0.06 | 2.25 | 2.03 | 7.07 (-2.79-4.28) | 2.01 | -0.95 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | 0.75 | 0.69 | 0.03 | 0.81 | 0.79 | 5.2 (-2.4-2.8) | 0.75 | -0.86 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 590 | 0 | 1.75 | 1.51 | 0.06 | 2.12 | 1.91 | 7.18 (-2.44-4.74) | 1.75 | -0.88 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | -2.41 | 0.73 | 0.08 | -2.28 | -2.35 | 3.48 (-4.55–1.07) | 0.83 | -0.77 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | -1.77 | 0.92 | 0.10 | -1.79 | -1.81 | 4.52 (-3.51-1.01) | 1.05 | 0.47 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | -0.70 | 0.71 | 0.08 | -0.60 | -0.66 | 3.42 (-2.78-0.64) | 0.95 | -0.53 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | -3.85 | 0.87 | 0.09 | -4.03 | -3.93 | 5.06 (-5.53–0.46) | 0.83 | 1.21 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | -0.08 | 1.13 | 0.12 | -0.17 | -0.11 | 5.04 (-2.22-2.82) | 1.86 | 0.21 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | 0.72 | 0.55 | 0.06 | 0.81 | 0.75 | 2.65 (-0.57-2.09) | 0.74 | -0.54 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 88 | 0 | -1.18 | 0.80 | 0.08 | -1.07 | -1.13 | 3.7 (-3.32-0.39) | 1.04 | -0.58 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | -2.37 | 0.93 | 0.23 | -2.11 | -2.30 | 3.33 (-4.55–1.23) | 0.68 | -1.23 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | -2.41 | 0.89 | 0.22 | -2.63 | -2.51 | 3.7 (-3.51-0.19) | 0.69 | 1.80 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | -1.29 | 0.71 | 0.18 | -1.17 | -1.26 | 2.48 (-2.78–0.3) | 0.87 | -0.59 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | -3.71 | 1 | 0.25 | -4.02 | -3.90 | 3.91 (-4.37–0.46) | 0.47 | 2.71 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | -0.33 | 1.10 | 0.28 | -0.45 | -0.36 | 4.21 (-2.22-2) | 1.35 | 0.17 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | 0.73 | 0.51 | 0.13 | 0.75 | 0.77 | 1.76 (-0.39-1.37) | 0.49 | -0.99 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 16 | 0 | -2.20 | 0.87 | 0.22 | -2.32 | -2.30 | 3.7 (-3.32-0.39) | 0.96 | 1.76 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | -2.99 | 1.05 | 0.08 | -3.06 | -3.07 | 5.62 (-5.2-0.42) | 1.04 | 0.79 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | -0.98 | 1.07 | 0.09 | -1.04 | -1 | 5.2 (-3.45-1.75) | 1.42 | 0.17 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | -0.54 | 0.68 | 0.05 | -0.58 | -0.56 | 4.61 (-2.61-2) | 0.84 | 0.34 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | -3.76 | 0.91 | 0.07 | -3.93 | -3.87 | 6.26 (-5.06-1.2) | 1.03 | 1.84 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | 0.56 | 1.15 | 0.09 | 0.65 | 0.57 | 5.05 (-1.81-3.24) | 1.82 | -0.04 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | 0.25 | 0.66 | 0.05 | 0.30 | 0.29 | 3.41 (-1.94-1.47) | 0.88 | -0.68 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 154 | 0 | -0.29 | 0.82 | 0.07 | -0.42 | -0.33 | 4.49 (-2.29-2.19) | 0.98 | 0.50 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | 1.49 | 1.20 | 0.05 | 1.62 | 1.62 | 9.37 (-5.03-4.33) | 1.21 | -1.79 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | -1.44 | 1.33 | 0.06 | -1.64 | -1.52 | 6.56 (-4.06-2.49) | 2.02 | 0.48 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | -0.99 | 0.62 | 0.03 | -1.02 | -1 | 4.17 (-2.7-1.48) | 0.76 | 0.16 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | -4.23 | 0.73 | 0.03 | -4.25 | -4.24 | 7.36 (-5.96-1.4) | 0.88 | 1.04 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | 2.27 | 1.03 | 0.04 | 2.47 | 2.36 | 7.89 (-3.32-4.56) | 1.13 | -1.14 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | 0.57 | 0.77 | 0.03 | 0.65 | 0.63 | 5.48 (-2.75-2.73) | 0.97 | -0.86 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 561 | 0 | -0.87 | 0.92 | 0.04 | -0.83 | -0.88 | 5.1 (-3.19-1.91) | 1.32 | 0.09 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | 2.17 | 1.93 | 0.26 | 2.77 | 2.41 | 7.86 (-3.12-4.74) | 2.24 | -1.17 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | -2.14 | 0.95 | 0.13 | -2.27 | -2.23 | 4.41 (-3.52-0.89) | 1.20 | 1.07 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | -0.60 | 0.43 | 0.06 | -0.66 | -0.61 | 1.85 (-1.57-0.28) | 0.65 | 0.11 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | -4.12 | 1.03 | 0.14 | -4.20 | -4.26 | 5.98 (-5.54-0.44) | 0.86 | 2.10 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | 1.91 | 1.16 | 0.16 | 1.94 | 1.98 | 5.32 (-1.06-4.26) | 1.30 | -0.47 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | 0.08 | 0.91 | 0.12 | 0.24 | 0.11 | 4.12 (-2.34-1.78) | 1.36 | -0.40 |
| var | type | label | n | NA.prc | mean | sd | se | md | trimmed | range | iqr | skew |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| expresion_level | numeric | expresion_level | 54 | 0 | -0.33 | 1.07 | 0.14 | -0.20 | -0.29 | 4.45 (-2.85-1.6) | 1.42 | -0.43 |
Tipos de cáncer y data proveniente de: [TGA CÁNCER])https://gdac.broadinstitute.org/)
#La tabla resultante del archivo <mRNA_expr_summary.doc >, representa un resumen
#de los datos estadísticos de manera agrupada, enfocados en la expresión de los
#genes de los distintos tipos de cánceres
#Tras analizar los valores obtenidos de la media y la curtosis, se puede
#determinar que los genes de MUC1 (media= 1.74) y ESR1 (media= 1.09), son los que
#mayor expresión tiene, y el menor gen que se expresa es el GATA3 (meadia= -2.0)Para esta pregunta tiene que utilizar la data df_long.
tcga_boxplots para visualizar boxplots y jitterplots. El único parámetro de la función es dataset. La función debe crear un boxplot de los niveles de expresión para cada gen.library(ggplot2)
library(dplyr)
tcga_boxplots <- function(dataset){
ggplot(df_long, aes(x = gen, y = expresion_level,
colour = gen)) +
geom_point(alpha = 0.3, position = "jitter") +
geom_boxplot(alpha = 0, colour = "black")
}#Se añade la gráfica para ver la interacción de cada dataset con los genes
#y su nivel de expresión, ya que la función tcga_boxplots permite visuaizar
#los genes involucrados
ggplot(df_long, aes(x = gen, y = expresion_level,
colour = dataset)) +
geom_point(alpha = 0.3, position = "jitter") +
geom_boxplot(alpha = 0, colour = "black")lapply() genera la lista cancertype_boxplots con las gráficas para cada tipo de cancer (cada tipo de dataset).## [[1]]
##
## [[2]]
##
## [[3]]
##
## [[4]]
##
## [[5]]
##
## [[6]]
result el tercer plot de la lista cancertype_boxplots con el nombre boxplot3.png. La definición de a figura debe ser de 300dpi.plot3 <- cancertype_boxplots[[3]] + ggtitle("Cáncer KIRP")
ggsave("results/boxplot3.png", dpi = 300)## Saving 7 x 5 in image
reg_gen_expression, con el parámetro gen. En este caso la función visualizará una gráfica de nube de puntos (geom_point) y una regresión por tipo de “dataset”. La gráfica será de comparación de gen1 con gen2; por ejemplo en el eje “x” GATA3 y en el eje “y”" FN1.reg_gen_expression <- function(gen){
xgen=df_long$gen
ygen=df_long$gen
x <- df_long %>% filter(gen[1] == xgen)
y <- df_long %>% filter(gen[2] == ygen)
#Combinación
z <- cbind(x, y)
w <- tibble("dataset"=z[,1],"genx"=z[,2],"geny"=z[,5])
ggplot(w, aes(x = genx, y = geny, colour = dataset)) +
geom_point(position = position_jitter())
}lapply() genera la lista reg_genplots con las gráficas para cada par de genes posibles. Recuerde que tiene 7 tipos de genes, se debe tener todas las combinaciones posibles por pares de genes (combinatoria sin repetición).genall <- unique(df_long$gen)
gencomb <- combn(genall, 2, simplify = FALSE)
reg_genplots <- lapply(gencomb, reg_gen_expression)
reg_genplots## [[1]]
##
## [[2]]
##
## [[3]]
##
## [[4]]
##
## [[5]]
##
## [[6]]
##
## [[7]]
##
## [[8]]
##
## [[9]]
##
## [[10]]
##
## [[11]]
##
## [[12]]
##
## [[13]]
##
## [[14]]
##
## [[15]]
##
## [[16]]
##
## [[17]]
##
## [[18]]
##
## [[19]]
##
## [[20]]
##
## [[21]]
result el onceavo plot de la lista reg_genplots con el nombre regresion11.pdf. La definición de a figura debe ser de 300dpi.## Saving 7 x 5 in image
boxplot3.png y regresion11.pdf.#bloxplot3.pnf
#En la figura de boxplot3.png, laca gráfica de caja de bigotes muestra en los
#genes de mayor expresión (ESR1 y MUC1) y en los de menor expresión (GATA3) una
#distribución asimétrica; aún más, el boxplot corrobora que la expresión de los
#genes ESR1 y MUC1 son los que se expresan en mayor cantidad.
#regresion11.pdf
#Posiblemente a algún error del que debido al tiempo ya no se pudo corregir
#la gráfica presenta mucho ruido y no permite evidenciar la regresión entre la
#combinación de los genes, hasta la última instancia se hizo lo posible.